<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/12/18 0018
 * Time: 上午 9:23
 */
namespace app\api\controller;

class Test{
    public function index(){
        $crond_list = [
            // 每分钟
            '*' => [
                'app\common\command\Notice::aaaa',
            ],
            // 每小时
            '*:00'       => [
                'app\common\command\Notice::writequeue',
            ],
            // 每天
            '00:00'      => [
                'app\common\command\Notice::bbbb',
            ],
            '08:50'      => [
                'app\common\command\Notice::eeeeeeeeee',
            ],
            // 每周
            '@-2 08:50'  => [
                'app\common\command\Notice::cccc',
            ],
            // 每月
            '*-01 00:00' => [
                'app\common\command\Notice::dddd',
            ],
        ];

        $crond_timer = [
            '*', // 每分钟
            '*:i', // 每小时 某分
            'H:i', // 每天 某时:某分
            '@-w H:i', // 每周-某天 某时:某分  0=周日
            '*-d H:i', // 每月-某天 某时:某分
            'm-d H:i', // 某月-某日 某时-某分
            'Y-m-d H:i' // 某年-某月-某日 某时-某分
        ];

        // 记录开始运行的时间
        $GLOBALS['_beginTime'] = microtime(TRUE);

        // 永不超时
        ini_set('max_execution_time', 0);
        $time   = 1545094200;
        $exe_method = [];
        foreach ($crond_timer as $format) {
            $key = date($format, ceil($time));
            dump($key);
            if(isset($crond_list[$key])){
                if (is_array(@$crond_list[$key])) {
                    $exe_method = array_merge($exe_method, $crond_list[$key]);
                }
            }
        }

        if (!empty($exe_method)) {
            dump($exe_method);
            foreach ($exe_method as $method) {
                if(!is_callable($method)) {
                    // 方法不存在的话就跳过不执行
                    continue;
                }





                // 执行 Cron 文件
                //call_user_func($method);




            }



        }
    }
}